﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net.Mail;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using BS_Gimnasio;
using BS_Gimnasio.Administracion;
using BS_Gimnasio.General;
using BS_Gimnasio.Logistica;
using BS_Gimnasio.RRHH;

namespace ServiceGimnasio
{
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de clase "Service" en el código, en svc y en el archivo de configuración.
    // NOTE: para iniciar el Cliente de prueba WCF para probar este servicio, seleccione Service.svc o Service.svc.cs en el Explorador de soluciones e inicie la depuración.
    public class Service : IService
    {
        #region Metodos Polimorfismo

        void IService.InsertarActualizarRegistro(bool tipoOperacion, ref string mensajeError, cls_Base objeto)
        {
            objeto.InsertarActualizarRegistro(tipoOperacion, ref mensajeError);
        }

        cls_Base IService.TraerObjeto(cls_Base objeto)
        {
            return objeto.TraerObjeto();
        }

        bool IService.EliminarRegistro(ref string mensajeError, cls_Base objeto)
        {
            return objeto.EliminarRegistro(ref mensajeError);
        }

        DataSet IService.Listar(int opcion, cls_Base objeto)
        {
            DataSet ds = new DataSet();

            DataTable tabla = objeto.Listar(opcion);
            ds.Tables.Add(tabla);

            return ds;
        }

        void IService.OtrosProcesos(int opcion, ref object resultado, cls_Base objeto)
        {
            objeto.OtrosProcesos(opcion, ref resultado);
        }

        #endregion

        #region Otros Servicios

        public cls_EnviarSMS EnviarSMS(cls_EnviarSMS objeto)
        {
            return objeto.EnviarSMS();
        }

        public cls_EnviarCorreos EnviarMail(int IdUsuario, ref string mensaje, cls_EnviarCorreos objeto)
        {
            return objeto.envioCorreoElectronico(IdUsuario, ref mensaje);
        }

        #endregion

    }
}
